﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.ComponentModel;
using Styx.Helpers;
using DefaultValue = Styx.Helpers.DefaultValueAttribute;

namespace SwInYUtility
{
    class Settings : Styx.Helpers.Settings
    {
        public static Settings _Instance;

        public Settings()
            : base(Path.Combine(Path.Combine(Logging.ApplicationPath, "Settings"), string.Format("SwInYUtility_{0}.xml", Styx.StyxWoW.Me.Name)))
        {
        }

        #region GuildInviter
        [Setting]
        [DefaultValue(false)]
        [Category("Guild Inviter")]
        [DisplayName("Enabled")]
        [Description("")]
        public bool GuildInviter_Enabled { get; set; }

        [Setting]
        [DefaultValue(1)]
        [Category("Guild Inviter")]
        [DisplayName("Minimum level")]
        [Description("This will look for people who are higher or equal to this level")]
        public int GuildInviter_MinLevel { get; set; }

        [Setting]
        [DefaultValue(85)]
        [Category("Guild Inviter")]
        [DisplayName("Maximum level")]
        [Description("This will look for people who are Maximum or equal to this level")]
        public int GuildInviter_MaxLevel { get; set; }

        [Setting]
        [DefaultValue(60)]
        [Category("Guild Inviter")]
        [DisplayName("Time to scan")]
        [Description("time to scan for new people")]
        public int GuildInviter_NextScanMinutes { get; set; }

        [Setting]
        [DefaultValue(0)]
        [Category("Guild Inviter")]
        [DisplayName("Last Scan")]
        [Description("[DO NOT TOUCH], or set to 0 to scan again")]
        public long GuildInviter_ToScanNext { get; set; }
        #endregion 

        #region RareKiller
        [Setting]
        [DefaultValue(false)]
        [Category("Rare Killer")]
        [DisplayName("Enabled")]
        [Description("")]
        public bool RareKiller_Enabled { get; set; }

        [Setting]
        [DefaultValue(true)]
        [Category("Rare Killer")]
        [DisplayName("Kill Elite Rare's")]
        [Description("")]
        public bool RareKiller_KillElites { get; set; }


        [Setting]
        [DefaultValue(1)]
        [Category("Rare Killer")]
        [DisplayName("Min Level")]
        [Description("Minimum level to fight rare's")]
        public int RareKiller_MinLevel { get; set; }
        #endregion

        #region Glue
        [Setting]
        [DefaultValue(false)]
        [Category("Glue")]
        [DisplayName("Enabled")]
        [Description("")]
        public bool Glue_Enabled { get; set; }

        [Setting]
        [DefaultValue(true)]
        [Category("Glue")]
        [DisplayName("Glue Players Only")]
        [Description("")]
        public bool Glue_PlayersOnly { get; set; }
        #endregion

        #region Misc
        [Setting]
        [DefaultValue(30)]
        [Category("Misc")]
        [DisplayName("Honorbuddy - Ticks Per Second")]
        [Description("How often Honorbuddy runs TPS. [ Default - 15]")]
        public int Misc_HBTPS { get; set; }
        #endregion

        #region loot Filter
        [Setting]
        [DefaultValue(false)]
        [Category("Loot Filter")]
        [DisplayName("Enabled")]
        [Description("")]
        public bool LootFilter_Enabled { get; set; }
        #endregion
    }
}
